package com.java.comprehensive.design.behavioral_model.template_pattern.heima;

public abstract class AbstractStirFriedVegetablesClass {

    //模板方法 流程是固定的
    public final void cookProcess() {
        pourOil();
        headOil();
        pourVegetables();
        pourSauce();
        fry();
    }

    public void pourOil() {
        System.out.println("倒油");
    }


    public void headOil() {
        System.out.println("热油");
    }

    /**
     * 差异方法需要具体子类自己实现 公共方法父类实现
     */
    abstract void pourVegetables();

    abstract void pourSauce();

    public void fry() {
        System.out.println("炒熟");
    }

}
